Bluetooth technology is a new technology for wireless communications, enabling short-range wireless RF communications between mobile telephones, computers and PDA devices. Each Bluetooth device, i.e., any device supporting Bluetooth technology, will be equipped with a Bluetooth transceiver. This is a micro-chip, an integrated circuit, transmitting and receiving information such as voice or data wirelessly on the 2.4 GHz frequency band. At present, the maximum range of a Bluetooth connection using normal transmitter power is approximately 10 meters.
Ericsson has introduced their Ericsson Bluetooth Headset HBH-10 product. It is a headset comprising a microphone and speaker and using Bluetooth technology. The headset is intended to be used with a mobile telephone equipped with Bluetooth features. After initiating a call from the mobile phone, the user can listen to the other party via the headset speaker and talk to the headset microphone. Between the mobile phone and the headset, the call is transmitted over a Bluetooth connection.
Before using the headset for the first time, another device will be assigned as the communications partner. From the point of view of the mobile phone user, the headset HBH-10 and a Bluetooth-equipped mobile phone can be assigned as communications partners by the following procedure: First, the user selects the assignment function from the appropriate menu in the mobile phone. Then, the user enters the headset's passkey into the mobile phone and presses the activation key. The mobile phone will start a search for Bluetooth devices within its Bluetooth operating range. The mobile phone will detect the headset, as well as other devices that might be present within the Bluetooth operating range, and their identifiers will be shown on the mobile phone display. The user will select the identifier of the headset and press the activation key to assign the mobile phone and the headset as a pair of communications partners. The headset is now ready to be used with the mobile phone.
In the Bluetooth specification, this procedure of assigning the communications partners is called the pairing procedure. The purpose of the pairing procedure is to establish a permanent trusted relationship between two Bluetooth devices. This has the advantage, among others, that establishing a future connection between this pair of devices will be simpler than establishing a connection between a pair of devices previously unknown to each other.
In the following, the pairing procedure and connection establishment in general will be examined in relation to the Bluetooth specification in the case where the two devices are unknown to each other. The Bluetooth devices will be designated the first Bluetooth device and the second Bluetooth device. The first Bluetooth device is the one that initiates the pairing procedure. Before this, the first Bluetooth device must, however, determine the unique address (Bluetooth Device Address) of the second Bluetooth device.
To determine the address of the second Bluetooth device, the first Bluetooth device will send an inquiry message. The other Bluetooth device, as well as other Bluetooth devices that might be within the Bluetooth operating range, will receive the inquiry message and generate an inquiry_res message in response; this message includes the address of each responding Bluetooth device. The Bluetooth devices will send the inquiry_res messages to the first Bluetooth device which will receive them and thus get the addresses of the Bluetooth devices, including that of the second Bluetooth device (from the inquiry_res message received from the second Bluetooth device).
When the first Bluetooth device has gotten the address of the second Bluetooth device, it can start the pairing procedure with the second Bluetooth device. First, the first Bluetooth device will generate a random number. It will send the random number to the second Bluetooth device. The second Bluetooth device will receive the random number and send an acknowledgement to the first Bluetooth device which will then receive the acknowledgement. The pairing procedure will be continued as a multi-phased process designed to authenticate the first and the second Bluetooth device for establishing a trusted relationship between the two devices. During different phases of the pairing procedure, the random number mentioned above, the secret key of the second Bluetooth device and the address of the second Bluetooth device, among other things, will be needed. Finally, the pairing procedure will generate a link key that will be stored in both devices. The link key will be linked with the addresses of the first and second Bluetooth devices. This can be done, for example, by storing the link key adjacent to the second Bluetooth device address in the first Bluetooth device, and adjacent to the first Bluetooth device address in the second Bluetooth device. The link key can later be used, among other purposes, for authentication and for generating an encryption key when establishing a Bluetooth connection between the pair of devices. This is a typical mode of usage.
After generating the link key in the pairing procedure, a Bluetooth connection will be established between the first Bluetooth device and the second Bluetooth device. Bluetooth connection establishment can be started with the link establishment procedure. The link establishment procedure is a multi-phase procedure designed to establish a physical, Asynchronous Connection-Less (ACL) type link between Bluetooth devices. The link establishment procedure is started by sending a paging message from one Bluetooth device to the other. Typically, the first Bluetooth device initiates the establishment of the connection and thus becomes the master in a master-slave arrangement; the second Bluetooth device becomes the slave.
After an ACL link has been established, a SCO (Synchronous Connection-Oriented) link can be established between the Bluetooth devices using the SCO connection setup procedure.
The link establishment procedure is followed by the channel establishment procedure, where a Bluetooth channel (logical connection) will be established between the Bluetooth devices. The channel establishment procedure is followed by the connection establishment procedure, where the actual Bluetooth connection (application layer connection) will finally be established between the Bluetooth devices.
After the Bluetooth connection has been established, information such as voice or data can be transmitted over the Bluetooth connection from one Bluetooth device to the other.
Each Bluetooth device can establish a pair with several other Bluetooth devices. In some cases, however, it might be desirable that the Bluetooth device forms a pair and establishes a connection with only a few other Bluetooth devices or only a single device. The international patent application PCT/FI01/00119 describes a Bluetooth smart card reader which communicates information over a Bluetooth connection between a smart card inserted in the reader and a mobile phone external to the smart card reader. If said Bluetooth smart card reader is a device intended for personal use, and it is desirable for security reasons that the device only communicates with a single mobile phone, for example, it is unnecessary for such a Bluetooth smart card reader to announce its address to other Bluetooth devices besides the mobile phone.
There may also be other situations where it is desirable for security reasons that a personal Bluetooth device would not give its address to unknown Bluetooth devices in order to prevent attempts of unauthorized usage.
Also, if the user is listening to music using a Bluetooth headset, that is a headset equipped with a Bluetooth transceiver, and the music is transmitted, for example, from an MP3 player to the headset over a Bluetooth connection, the Bluetooth headset may receive an inquiry message querying the addresses of the headset and other Bluetooth devices inside the Bluetooth operating range. When the Bluetooth headset, which may have limited processing power, processes the inquiry message, this may interfere with the music playback in progress.